feat: Add Honeycomb integration#3149
Open
gaga1307 wants to merge 26 commits intosuperplanehq:mainfrom
Open
Conversation
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Enhances the security of the webhook token validation by using constant-time comparison to prevent timing attacks. This change ensures that the length of the provided token does not leak information, and improves the overall robustness of the integration. Signed-off-by: Dragica dragica.draskic@gmail.com Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Improves error handling in the webhook integration by providing clearer error messages and ensuring that all potential failure points are properly logged. This change aims to enhance the user experience by making it easier to diagnose issues related to webhook events. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
be0f6f9 to
55a3330
Compare
Refines assertions in the Honeycomb event creation test to ensure the payload is a valid JSON object and that the event time is correctly sent via the header. This change enhances the clarity of the test and improves validation of the event data structure. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Refines the Honeycomb client to set the event timestamp header only when the "time" field is not provided in the fields map. This change ensures that user-defined timestamps are respected. Additionally, updates the test cases to verify the correct behavior of the timestamp header based on the presence of the "time" field, enhancing test clarity and coverage. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Enhances the token validation logic in the OnAlertFired handler to ensure that tokens prefixed with "bearer" from the Authorization header are not stripped. Additionally, adds new test cases to verify the correct handling of tokens from both the X-Honeycomb-Webhook-Token and X-Shared-Secret headers, improving overall robustness and coverage of the integration. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Eliminates the unused BaseURLEU constant from the Honeycomb client, streamlining the code and improving clarity. This change helps maintain cleaner integration code by removing unnecessary elements. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Collaborator
|
Hi @gaga1307 thanks for trying this one. Kapture.2026-02-20.at.09.31.53.mp4Based on the video you attached I can share some early feedback on UX though:
Feel free to join us on our Discord server for a faster feedback loop :) |
Author
|
Thanks for the feedback! I’ll fix the icon and try implementing automatic webhook provisioning using a Management API key so users don’t need to configure them manually. |
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
4dbe756 to
2a3e227
Compare
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
e308e94 to
39e739b
Compare
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
aa2aeba to
e600c1a
Compare
Adds a more descriptive error message when the configuration key v1 ping fails, enhancing clarity in error reporting and aiding in troubleshooting. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Updates the CreateEventConfiguration interface to allow fields to be stored as a raw JSON string or an object. Introduces a new function, formatFieldsForDisplay, to properly format fields for display, ensuring that JSON strings are parsed correctly to avoid double-encoding. This change improves the handling and presentation of event data in the Honeycomb integration. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
…ation Enhances the error handling in the OnAlertFired setup function by adding a descriptive error message when ensuring the configuration key fails. This change improves clarity in error reporting and aids in troubleshooting. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
ffb47b3 to
980e48a
Compare
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
b435362 to
0aee77f
Compare
Introduces the pingV1WithKey function to validate both configuration and ingest keys against the Honeycomb API. Enhances the EnsureIngestKey method to perform a ping check on the ingest key, improving error handling and ensuring the key's validity before reuse. This change strengthens the integration's reliability and error reporting. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Updates the CreateEvent method to use getSecretValue for retrieving the ingest key instead of the deprecated getIngestHeaderValue method. This change simplifies the code by removing the unused method and enhances the overall clarity of the client implementation. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Introduces a new function, stripTriggerForUpdate, to centralize the removal of read-only and conflicting fields from trigger payloads before sending updates to the Honeycomb API. This change reduces code duplication in the UpdateTrigger and RemoveRecipientFromTrigger methods, enhancing maintainability and clarity. Additionally, improves error handling in the CreateEvent method by providing a more descriptive error message when the ingest key is not found. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Enhances the OnAlertFired setup function by adding a step to set metadata for the trigger ID. This change improves the integration's ability to track alert triggers and provides better context for subsequent operations. Additionally, it includes error handling for the metadata setting process to ensure robustness. Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
Signed-off-by: Dragica Draskic <dragica.draskic@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements #2999
Implementation
This PR adds the Honeycomb integration, enabling users to trigger workflows from Honeycomb alerts and send custom events to Honeycomb datasets.
Why
This integration allows observability-driven workflows by connecting Honeycomb alerts and events directly into SuperPlane automation flows.
Connection & Authentication
<keyID>:<secret>format)api.honeycomb.io) and EU (api.eu1.honeycomb.io)During sync, SuperPlane automatically provisions and stores two scoped API keys:
/1API)/1/eventsAPI)No manual API key setup beyond the Management Key is required.
Components
1. On Alert Fired (Trigger)
Webhook-based trigger that starts workflow executions when a Honeycomb trigger fires (e.g., threshold breaches, SLO burns).
Features:
OnAlertFirednodes targeting the same dataset reuse a single webhook recipient, with trigger IDs mergedX-Honeycomb-Webhook-TokenorAuthorization: Bearer)Use cases:
2. Create Event (Component)
Sends a custom JSON event to a Honeycomb dataset via the Events API.
Features:
X-Honeycomb-Event-Timeif atimefield is not provided in the payloadUse cases:
Demo
Google Drive